﻿//---------------------------------------------------------------------------
// <copyright file="PopularApplicationSkins.cs" company="Microsoft Corporation">
//     Copyright (C) Microsoft Corporation.  All rights reserved.
// </copyright>
//---------------------------------------------------------------------------

namespace Microsoft.Windows.Controls.Ribbon
{
    #region Using declarations

    using System;
    using System.Windows;

    #endregion

    /// <summary>
    ///   Contains ResourceDictionarys for popular application Ribbon skins.
    /// </summary>
    public static class PopularApplicationSkins
    {
        #region Fields

        /// <summary>
        ///   Path to the ResourceDictionary containing Office 2007's Black skin.
        /// </summary>
        private const string Office2007BlackPath = @"/RibbonControlsLibrary;component/Themes/Office2007Black.xaml";

        /// <summary>
        ///   Path to the ResourceDictionary containing Office 2007's Blue skin.
        /// </summary>
        private const string Office2007BluePath = @"/RibbonControlsLibrary;component/Themes/Office2007Blue.xaml";

        /// <summary>
        ///   Path to the ResourceDictionary containing Office 2007's Silver skin.
        /// </summary>
        private const string Office2007SilverPath = @"/RibbonControlsLibrary;component/Themes/Office2007Silver.xaml";

        /// <summary>
        ///   Cached ResourceDictionary for Office 2007's Black skin.
        /// </summary>
        private static ResourceDictionary _office2007Black;

        /// <summary>
        ///   Cached ResourceDictionary for Office 2007's Blue skin.
        /// </summary>
        private static ResourceDictionary _office2007Blue;

        /// <summary>
        ///   Cached ResourceDictionary for OFfice 2007's Silver skin.
        /// </summary>
        private static ResourceDictionary _office2007Silver;

        #endregion

        #region Public Properties

        /// <summary>
        ///   Gets a ResourceDictionary which skins the Ribbon to look like Office 2007's Black skin.
        /// </summary>
        public static ResourceDictionary Office2007Black
        {
            get { return _office2007Black ?? (_office2007Black = new ResourceDictionary() { Source = new Uri(Office2007BlackPath, UriKind.Relative) }); }
        }

        /// <summary>
        ///   Gets a ResourceDictionary which skins the Ribbon to look like Office 2007's Blue skin.
        /// </summary>
        public static ResourceDictionary Office2007Blue
        {
            get { return _office2007Blue ?? (_office2007Blue = new ResourceDictionary() { Source = new Uri(Office2007BluePath, UriKind.Relative) }); }
        }

        /// <summary>
        ///   Gets a ResourceDictionary which skins the Ribbon to look like Office 2007's Silver skin.
        /// </summary>
        public static ResourceDictionary Office2007Silver
        {
            get { return _office2007Silver ?? (_office2007Silver = new ResourceDictionary() { Source = new Uri(Office2007SilverPath, UriKind.Relative) }); }
        }

        #endregion
    }
}